package com.jumi.microservice.service;

import com.jumi.microservice.dto.apiService.OrderGoodsNumNameResponse;
import com.jumi.microservice.dto.apiService.RefundOrderGoodsResponse;
import com.jumi.microservice.dto.serviceDto.RefundOrderGoodsRequest;
import com.jumi.microservice.enumerate.OrderStatusEnum;

import java.util.List;

/**
 * @author wangjingdao
 */
public interface IOrderGoodsService {
    /**
     * 根据订单编号 获取商品名称跟数量 过滤退货退款的
     *
     * @param orderGoods
     * @return
     */
    List<OrderGoodsNumNameResponse> getGoodsNamePrice(List<String> orderGoods);

    /**
     * 根据订单编号 获取商品名称跟数量 不过滤售后
     *
     * @param orderGoods
     * @return
     */
    List<OrderGoodsNumNameResponse> getInvoiceGoods(List<String> orderGoods);

    /**
     * 根据订单id 商品id 获取 orderGoods
     *
     * @param orderId
     * @param goodsIds
     * @return
     */
    List<RefundOrderGoodsResponse> getRefundOrderGoods(Integer orderId, List<Integer> goodsIds);

    /**
     * 退款
     *
     * @param request
     * @return
     */
    Boolean refundUpdateGoods(RefundOrderGoodsRequest request);

    /**
     * 查询这个订单下 有没有没产生售后的商品
     *
     * @return
     */
    Boolean judgeOrderGoodsStatus(Integer orderId);

    /**
     * 冲红商品列表
     *
     * @param orderGoods
     * @return
     */
    List<OrderGoodsNumNameResponse> redInvoiceOrderList(List<String> orderGoods);

    /**
     * 全部冲红
     *
     * @param orderNo
     * @param goodsId
     * @return
     */
    OrderGoodsNumNameResponse redInvoiceOrder(String orderNo, Integer goodsId);
}
